In many factories the manufacture takes place at different workstations. Robots performing tasks at the workstations can be used in order to increase the productivity. The robot can perform operations, such as welding, gluing, painting, grinding, picking, and assembly at the workstations.
Robots are usually placed in robot cells in order to facilitate the automation of complex series of actions. The robot cell may comprise a number of different workstations and the robot can be programmed to perform different tasks at the different workstations. A workstation may, for example, contain a machine, such as an injection molding machine, a die casting machine, a sheet metal machine and a CNC machine. Other examples of workstations are scrap stations for throwing away rejected objects, devices for vision control of objects, stations for subsequent treatment of the objects, and input and output stations such as conveyors, input pallets or output pallets.
Before an industrial robot is put into operation for a certain task, it must be programmed to carry out the task. The robot programmer must, for example, program the order in which the robot shall visit the workstations, program how the I/O signals are to be used to interact with the workstations, how the tool is to be operated at the station, and program all of the robot paths to be used. Programming of a robot cell can be very complex. Traditional robot programming requires the significant robot knowledge in general and knowledge of the specific robot manufacturers' robot code as well. When programming an industrial robot, a robot language is used. Typical robot programming languages include instructions for robot motion, handling input and output signals, program comments, and handling program flow. Each industrial robot manufacturer has its own robot programming language. The robot program comprises a series of instructions written in a robot programming languages where each instruction tells the robot controller what to do and how to do it. The use of a programming language offers the advantage of great flexibility, but also requires that the person, who is programming the robot, has knowledge about robot programming and, in particular, about robot languages of different robots. However, in the industry it is not always possible to have operators with knowledge about robot programming. Thus, there is a desire to make it possible for operators without any knowledge about programming language to program the robot in a simple and intuitive way.
Today there exist some robot programming wizards, which lead the operators through the questions and allows a user to give input give input in terms of parameters and teaching paths in response to the questions. Wizards are based on static programs where the wizards is a user interface layer on top of the robot program. This means that each wizard is custom-built for the application, e.g. for palletizing or press brakes.
WO/2006/043873 discloses a system and a method for programming an industrial robot to perform a work cycle including visiting and performing work on a plurality of workstations. A set of predefined workstations comprising preprogrammed robot code for controlling the robot so that it carries out a defined task at the workstation, and a wizard providing a graphical interface for guiding the user during the programming of the workstation is created in advance. The preprogrammed robot code comprises predefined movement paths for the robot for carrying out the task at the workstation. The movement path, which the robot shall follow during the task, is defined by a sequence of way-points, in the following denoted targets. During programming of the robot, the wizard displays information about the predefined workstations, and allows a user to select one or more of the predefined workstations and to specify the order in which the robot shall visit the selected workstations. The wizard makes it possible for the programmer configure the settings of the workstation and to change the positions of the targets of the predefined movement path. The programming code is hidden from the user, and the user creates a robot program by interacting with the graphical interface of the wizard. A robot program generator generates a robot program for performing the work cycle based on the predefined workstations and the user inputs. The method and system described in WO/2006/043873 makes it possible for a user to create a robot program for a robot cell without using any programming code. However, the workstations has to be defined in advance and robot code for each of the workstations has be created in advance, which is time consuming. It also takes time and effort to create the wizard. Further, if any of the workstations has to be amended, or a new workstation is to be added, it time consuming to adjust the wizard. Another problem is that different customer has different sets of workstations. Thus, it is a desire to customize the wizard to a customer or a robot cell.
EP2 129 498B1 discloses a method and an apparatus for programming an industrial robot working in a robot cell including one or more workstations. The apparatus comprises a memory location for storing preprogrammed robot code comprising program instructions where accommodations for optional parameters are made, and for storing at least one predefined workstation having a plurality of different scenarios, each scenario including a set of parameters defining how the robot will perform work on the workstation, a graphical display and input device adapted to present a graphical user interface displaying a graphical object representing the workstation, displaying information about the scenarios together with the graphical object representing the workstation, and allowing the user to select one of the scenarios associated with the workstation, and a robot program generator adapted to generate a robot program based on user selected scenarios and the preprogrammed robot code. Each scenario contains a sequence of one or more default actions having default parameters related to how the action is to be carried out. This makes it possible to beforehand define and create program code for a plurality of possible scenarios for the workstations and allows a programmer to select among the predefined scenarios. The scenarios are displayed together with a graphical object representing the workstation, thereby facilitating the programming for the operator. A disadvantage with this method is that the selectable scenarios are given beforehand, and accordingly the flexibility of the programming of the workstations is reduced.
Thus, designing a tool for guiding through programming of an industrial robot is a tradeoff between flexibility and simplicity of the programming.
In small and medium-sized enterprise, a system designer with a certain knowledge of robot programming is used to set up and program the robot in the robot cell. However, when a new product is to be produced, or there are other minor changes to the production, the system designer has to come back and reprogram the robot. This can be costly, in particular, if small batches are produced. It is desired that an end user, without any knowledge of robot programming, can reprogram the robot in a simple way.